package ace.module.stock.core.impl.service;

import ace.module.common.api.model.input.TenantAndAppTypeInput;
import ace.module.stock.api.model.dto.WmsStockDto;
import ace.module.stock.api.model.dto.ext.WmsStockDetailDto;
import ace.module.stock.api.model.input.WmsBizInitInput;
import ace.module.stock.api.model.input.WmsStockActionRecordWithBatchSnInput;
import ace.module.stock.api.model.input.WmsStockActionTypeRecordWithBatchSnInput;
import ace.module.stock.api.model.input.WmsStockReverseBatchSnInput;
import java.util.List;

/**
 * .
 *
 * @author Caspar
 */
public interface WmsStockService {

  WmsStockDetailDto initOrSet(TenantAndAppTypeInput<WmsBizInitInput> input);

  String add(TenantAndAppTypeInput<WmsStockActionRecordWithBatchSnInput> input);

  String subtract(TenantAndAppTypeInput<WmsStockActionRecordWithBatchSnInput> input);

  String modify(TenantAndAppTypeInput<WmsStockActionTypeRecordWithBatchSnInput> input);

  String reverse(TenantAndAppTypeInput<WmsStockReverseBatchSnInput> input);

  WmsStockDetailDto getDetail(Long tenantId, String appType, Long objectParentId);

  List<WmsStockDto> getSkuByObjectIdIn(TenantAndAppTypeInput<List<Long>> input);

  List<WmsStockDto> getProductByObjectIdIn(TenantAndAppTypeInput<List<Long>> productIdInput);
}
